forked from androidx/androidx
-
Notifications
You must be signed in to change notification settings - Fork 0
[pull] androidx-main from androidx:androidx-main #741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This change refactors UseCaseCamera, UseCaseCameraRequestControl, and CapturePipeline to utilize javax.inject.Provider for their dependencies instead of direct object injection. Key changes include: * Updated constructors for `UseCaseCamera`, `UseCaseCameraRequestControl`, and `CapturePipeline` to accept `Provider<T>` or lambda providers. * Converted internal properties to use `by lazy` initialization, ensuring components are only instantiated when accessed. * Cleaned up `UseCaseCameraConfig` by removing the `useCases` list and unnecessary intermediate providers, reducing configuration overhead. This refactoring helps break circular dependencies between the CameraControl, CameraState, and CapturePipeline, and ensures that heavy components are initialized lazily rather than at the moment of graph configuration. Bug: 448593362 Test: UseCaseCameraRequestControlTest, UseCaseManagerTest, StillCaptureRequestControlTest Change-Id: Ibef6101fa8ac83fcc160f16b0be099f0fa6110b0
This change introduces a new API getTopPageObjectAtPosition to the PdfDocumentRemote interface to query the topmost PDF object at a specific point on a page, filtered by object type. - A new PdfObject AIDL parcelable. - The getTopPageObjectAtPosition method in PdfDocumentRemote.aidl Test: SandboxedPdfDocumentTest Bug: 448072992 Change-Id: I6a862b2ad655aeabfe45f16a1c3f4b3dec3e6236
This change introduces the getTopPageObjectAtPosition functionality to the PdfDocument interface. includes: - Adds the new getTopPageObjectAtPosition suspend function to the PdfDocument interface. - Implementation in SandboxedPdfDocument`. - Adding placeholder implementations in various FakePdfDocument and FakeEditablePdfDocument classes used for testing. Test: SandboxedPdfDocumentTest Bug: 447328457 Change-Id: I342aa77bdd48554f9f3ec0ce30177e30122c47b9
This change implements the conversion from the AOSP `PdfPageObject` to the Jetpack `PdfObject` within `PdfDocumentRemoteImpl`. - The `getTopPageObjectAtPosition` function now converts the AOSP `PdfPageObject` and `PdfPageImageObject` into the corresponding Jetpack `ImagePdfObject`, `PdfObject` - The bounding box for `ImagePdfObject` is calculated from the transformation matrix of the `PdfPageImageObject`. Test: SandboxedPdfDocumentTest Bug: 448072992 Change-Id: I12ea3eb08dc30235bff0a1b59845f91b626251ef
… AudioSpec The 'AUTO' naming was ambiguous in cases where the system needed to distinguish between "automatically selected" and "no preference provided." Transitioning to 'UNSPECIFIED' improves semantic clarity for configurations where no specific requirement is set, allowing the resolution engine to handle defaults more predictably. Key changes: - Renamed QUALITY_SELECTOR_DEFAULT to QUALITY_SELECTOR_UNSPECIFIED in VideoSpec and initialized it with a new QualitySelector.NONE constant. - Moved DEFAULT spec instances from MediaSpec companion object to their respective classes (VideoSpec.DEFAULT and AudioSpec.DEFAULT) for better encapsulation. - Updated Recorder.DEFAULT_QUALITY_SELECTOR to explicitly define its preferred quality list (FHD, HD, SD). - Removed unused AudioSpec.NO_AUDIO. Bug: 473996668 Test: ./gradlew camera:camera-video:testRelease Change-Id: Ifc908a042f4728b46705fe3469bc2db241a5175f
Introduce MediaConfigUtil to centralize the logic for resolving media settings (container format, MIME types, and EncoderProfiles), including the auto-selection via FormatComboRegistry queries if certain container format or MIME types are unset. Currently, `VideoConfigUtil.resolveVideoMimeInfo()` and `AudioConfigUtil.resolveAudioMimeInfo()` resolve settings based only on output format and EncoderProfiles. However, supporting custom MIME types requires evaluating the entire combination of MediaSpec(container, MIME types), DynamicRange and EncoderProfiles. `MediaConfigUtil.resolveMediaInfo()` will later replace the `VideoConfigUtil.resolveVideoMimeInfo()` and `AudioConfigUtil.resolveAudioMimeInfo()` to handle these combinations holistically. Key changes: - Added `MediaConfigUtil.resolveMediaInfo()` which attempts to resolve configuration using `EncoderProfiles` first, and falls back to `FormatComboRegistry` if necessary. - Introduced `MediaInfo` class to aggregate the resolved configuration (Container, Video, Audio). - Added `ContainerInfo` to hold container format details. - Added helper methods in `VideoConfigUtil` and `AudioConfigUtil` to resolve compatible profiles based on MIME types and dynamic range. Bug: 473996668 Test: ./gradlew camera:camera-video:testRelease Change-Id: I3ca7ec6c01e63aed7a4f144f42ce3a04ee664f83
* changes: Centralize media configuration resolution with MediaConfigUtil Refactor: Rename *_AUTO to *_UNSPECIFIED in MediaSpec, VideoSpec, and AudioSpec
This CL refactors UseCaseCameraRequestControl to support lazy initialization, moving its heavy construction off the main thread during camera startup. DeferredUseCaseCameraRequestControl: A proxy implementation that intercepts control requests and dispatches them to the background sequential thread before initializing the real implementation. Updated UseCaseCameraRequestControlImpl: Modified internal dispatching logic (runOnSequential) to detect if it is already running on the sequential thread. If so, it executes immediately (using CoroutineStart.UNDISPATCHED) to prevent double-posting tasks. Binds the new Wrapper to the UseCaseCameraRequestControl interface, allowing consumers (like FlashControl, ZoomControl) to remain unchanged while benefiting from lazy loading. Bug: 448593362 Test: ./gradlew camera:camera-camera2-pipe-integration:testDebugUnitTest Test: Manual verification of startup logs to confirm deferred initialization. Change-Id: Iad3437208e1f296f25be054e2fe3655ca816bd3b
* changes: Convert AOSP PdfPageObject to Jetpack PdfObject Add getTopPageObjectAtPosition API in pdf document Add getTopPageObject in pdf document service
* changes: Refactor: Defer UseCaseCameraRequestControl initialization Use Providers for UseCaseCamera dependencies to defer initialization
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )